package com.farmer.product.service;

import com.farmer.common.entity.Product;
import com.farmer.common.result.Result;

/**
 * 农产品服务接口
 */
public interface ProductService {

    /**
     * 获取农产品列表（分页）
     * @param pageNum 页码
     * @param pageSize 每页大小
     * @param category 商品分类
     * @param keyword 搜索关键词
     * @param status 商品状态
     * @return 农产品列表
     */
    Result<?> getProductList(Integer pageNum, Integer pageSize, String category, String keyword, Integer status);

    /**
     * 根据ID获取农产品详情
     * @param productId 商品ID
     * @return 农产品详情
     */
    Result<?> getProductById(Long productId);

    /**
     * 添加农产品
     * @param product 农产品信息
     * @return 添加结果
     */
    Result<?> addProduct(Product product);

    /**
     * 更新农产品信息
     * @param product 农产品信息
     * @return 更新结果
     */
    Result<?> updateProduct(Product product);

    /**
     * 删除农产品
     * @param productId 商品ID
     * @return 删除结果
     */
    Result<?> deleteProduct(Long productId);

    /**
     * 更新商品状态（上架/下架）
     * @param productId 商品ID
     * @param status 状态
     * @return 更新结果
     */
    Result<?> updateProductStatus(Long productId, Integer status);

    /**
     * 获取商品分类列表
     * @return 分类列表
     */
    Result<?> getCategoryList();

    /**
     * 更新商品库存
     * @param productId 商品ID
     * @param quantity 库存变化数量（正数增加，负数减少）
     * @return 更新结果
     */
    Result<?> updateStock(Long productId, Integer quantity);
} 